package san;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class Config {
    //当Spring容器中没有任何DragonBlade类型对象时,运行会报错
    //当Spring容器中有唯一的DragonBlade类型对象时,运行成功,
    //              即使保存DragonBlade对象的方法名和关羽参数的参数名不同也可以
    //当Spring容器中有两个及以上的DragonBlade类型对象时,
    //              关羽方法参数名没有和任何一个方法名匹配会报错
    //              关羽方法参数名有和任何一个方法名匹配会成功
    @Bean
    public DragonBlade blade1(){
        return new DragonBlade();
    }
    @Bean
    public DragonBlade blade2(){
        return new DragonBlade();
    }
    //实现依赖注入
    //guanYu方法的参数列表中声明DragonBlade
    // Spring会自动从Spring容器中找到匹配的对象赋值
    @Bean
    public GuanYu guanYu(DragonBlade blade2){
        GuanYu guanYu=new GuanYu();
        guanYu.setDragonBlade(blade2);
        return guanYu;
    }


}
